﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;

//namespace Ganaye.EmbeddedDb
//{
//    internal class RecordColumn
//    {
//        private mFieldType mRecordType;
//        private int mColumnNumber;

//        public RecordColumn(mFieldType recordType, int columnNumber)
//        {
//            mRecordType = recordType;
//            mColumnNumber = columnNumber;
//        }

//        internal void GetValue(Record record, ref int newValue)
//        {
//            if (record.mFieldStates[mColumnNumber] == FieldState.None)
//            {
//                //newValue = record.mBuffer[mOffset]
//                //    | (record.mBuffer[mOffset+1]<<8)
//                //    | (record.mBuffer[mOffset+2]<<16)
//                //    | (record.mBuffer[mOffset+3]<<24);
//                record.mFieldStates[mColumnNumber] = FieldState.Read;
//            }
//        }

//        internal void GetValue(Record record, ref string newValue)
//        {
//            throw new NotImplementedException();
//        }

//        internal void GetValue(Record record, ref DateTime? newValue)
//        {
//            throw new NotImplementedException();
//            //if (newValue == currentValue) return;
//            //// we should be checking the index here
//            //if (mPendingUpdateCount == 0)
//            //    mTable.OnFieldChanging(this, ClientCodeColumn, currentValue, newValue);
//            //currentValue = newValue;
//            //mFieldStates[0] = FieldState.Modified;
//        }

//        internal void SetValue(Record record, ref int currentValue, int newValue)
//        {
//            if (record.mFieldStates[mColumnNumber] == FieldState.None)
//            {
//                record.mFieldStates[mColumnNumber] = FieldState.Read;
//            }
//            if (newValue == currentValue) return;
//            // we should check the index here
//            var newStreamFunc = record.mTable.GetColumnByNumber(mColumnNumber);

//            currentValue = newValue;
//        }

//        internal void SetValue(Record record, ref string currentValue, string newValue)
//        {
//            currentValue = newValue;
//        }

//        internal void SetValue(Record record, ref DateTime? currentValue, DateTime? newValue)
//        {
//            currentValue = newValue;
//        }

//        internal TableColumn GetTableColumn(Table mTable, bool p)
//        {
//            throw new NotImplementedException();
//        }
//    }
//}
